package com.zyl.file.service;


import com.zyl.file.po.StFile;
import com.zyl.file.vo.DownFileVO;
import org.springframework.http.ResponseEntity;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.InputStream;
import java.util.List;

/**
 * 文件处理
 *
 * @author zyl
 * @since 2023/7/6 17:58
 */
public interface FileDealService {

    /**
     * 获取源文件
     *
     * @param request  请求头
     * @param response 响应头
     * @param fileId   文件id
     */
    void createInputStreamResourcesCache(HttpServletRequest request, HttpServletResponse response, Long fileId);

    /**
     * 文件下载(普通)
     *
     * @param sessionId  sessionId
     * @param downFileVO 文件下载对象
     * @param response   响应头
     * @return Result
     */
    ResponseEntity<byte[]> downFileByResponseEntity(String sessionId, DownFileVO downFileVO, HttpServletResponse response);

    /**
     * 文件下载
     *
     * @param sessionId  sessionId
     * @param downFileVO 文件下载对象
     * @param response   响应头
     */
    void downFile(String sessionId, DownFileVO downFileVO, HttpServletResponse response);

    /**
     * 获取文件地址
     *
     * @param fileId 文件id
     * @return Result
     */
    String getFileUrl(Long fileId);

    /**
     * 删除文件
     *
     * @param fileId 文件id
     */
    void deleteFile(Long fileId);

}
